package com.changgou.order.service;

import com.changgou.order.pojo.Order;
import com.changgou.order.pojo.OrderLog;
import com.changgou.order.pojo.Remind;
import com.github.pagehelper.PageInfo;

import java.util.List;
import java.util.Map;

/****
 * @Author:keda
 * @Description:Order业务层接口
 * @Date 2019/6/14 0:16
 *****/
public interface OrderService {

    /**
     * 查询所有状态订单个数
     * @return
     */
    Map<String, Object> findCount();

    /**
     * 根据用户名分页排序条件查询订单
     * @param order
     * @param page
     * @return
     */
    Map<String, Object> findAllOrder(Order order, int page);


    /**
     * 根据id取消(修改状态)订单
     * @param id
     */
    void CancellationOfOrder(String id);

    /**
     * 确认收货(修改状态)
     * @param id
     */
    void confirmReceipt(String id);

    /**
     * 提醒发货
     * @param orderId
     * @return
     */
    Remind remindTheShipment(String orderId);

    /**
     * 增加发货数据
     * @param orderId
     */
    void addRemind(String orderId);

    /**
     * 修改提醒表状态
     * @param id
     */
    void updateRemindStatus(String id);

    /**
     * 删除订单(修改状态)
     * @param orderId
     */
    void deleteOrder(String orderId);

    /***
     * Order多条件分页查询
     * @param order
     * @param page
     * @param size
     * @return
     */
    PageInfo<Order> findPage(Order order, int page, int size);

    /***
     * Order分页查询
     * @param page
     * @param size
     * @return
     */
    PageInfo<Order> findPage(int page, int size);

    /***
     * Order多条件搜索方法
     * @param order
     * @return
     */
    List<Order> findList(Order order);

    /***
     * 删除Order
     * @param id
     */
    void delete(String id);

    /***
     * 修改Order数据
     * @param order
     */
    void update(Order order);

    /***
     * 新增Order
     * @param order
     * @return
     */
    int add(Order order);

    /**
     * 根据ID查询Order
     *
     * @param id
     * @return
     */
    Order findById(String id);

    /***
     * 查询所有Order
     * @return
     */
    List<Order> findAll();

    void updateStatus(String username, String orderId, String transactionId, OrderLog orderLog);

    void deleteOrder(OrderLog orderLog);
}
